package demo1210.am;
/*
1.抽象方法:由abstract修饰的方法为抽象方法，抽象方法只有方法的定义，
没有方法体的实现，用一个分号结尾。
2.抽象方法必须在抽象类中.
 抽象类格式:修饰符 abstract class 类名{}
3.一个普通类继承抽象类,必须重写抽象类中所有的抽象方法.
 (除非它也是抽象类,就可以不重写抽象类中的方法)

注意:抽象类不能创建对象.
一个抽象类:
格式:
修饰符 abstract class 类名{
   属性
   构造方法
   成员方法
   抽象方法
}
以上抽象类中的属性和方法都是可有可无.
抽象类中可以没有抽象方法,抽象方法必须在抽象类中.

抽象类的特点:
1.抽象方法一定在抽象类中
2.抽象方法和抽象类都必须被abstract关键字修饰
3.抽象类不可以用new创建对象，因为调用抽象方法没意义
4.抽象类中的抽象方法要被使用，必须由子类复写其所有的抽象方法后，
  建立子类对象调用； 如果子类只覆盖了部分的抽象方法，那么该子类还是一个抽象类。


 */
public class Demo_02 {
    public static void main(String[] args) {
//     创建圆对象
        Circle circle = new Circle(4);
        System.out.println(circle.area());
        System.out.println(circle.length());
        System.out.println("----------------");
//        创建正方形对象
        Square  square = new Square(3);
        System.out.println(square.area());
        System.out.println(square.length());

    }
}
